#pragma once
#ifndef _RAYTRACER_MESHINFO_H_
#define _RAYTRACER_MESHINFO_H_

#include "Material.h"
#include <maya/MFloatPoint.h>
#include <maya/MFloatVector.h>
#include <vector>

class MeshInfo
{
public:
  class FaceGeom
  {
  public:
    int m_index;
    std::vector<MFloatPoint> m_pts;  
    std::vector<int> m_ptIdx;
    std::vector<MFloatVector> m_normals;
    std::vector<float> m_u;
    std::vector<float> m_v;
    bool is_valid()
    {
      return ((m_pts.size() == m_normals.size()) &&
        (m_pts.size() == m_u.size()) &&
        (m_pts.size() == m_v.size()));
    }
  };
  std::vector<MFloatPoint> m_pts;
  std::vector<FaceGeom> m_faceGeoms;
  Material m_material;
  MString m_name;
};

#endif